package udp1;

/*
 * 服务器/客户端
 * 
 * 先接收再发送
 */
import java.net.*;

public class DatagramPacketTest2 {
	public static void main(String[] args) throws Exception {
		/*
		 * 接收
		 */
		DatagramSocket socket = new DatagramSocket(7890);//接收需要创建一个带指定端口的数据报套接字
		byte[] b = new byte[102];
		//用来接收长度为1024的数据报包
		DatagramPacket inpacket = new DatagramPacket(b, 102);//字节数组为数据报包的内存空间
		socket.receive(inpacket);//接收数据报包
		// System.out.println(new String(inpacket.getData()));接受的为整个数据报的大小
		System.out.println("我说:" + new String(b, 0, inpacket.getLength()));//getLength()接收的是数据报包内数据实际大小
		System.out.println("数据接收成功");
		/*
		 * 发送
		 */
		String about2 = "I love you too";//发送的数据
		//创建发送端的数据报包,并通过接收数据报包对象获取发送的IP地址与端口号
		DatagramPacket outpacket = new DatagramPacket
				(about2.getBytes(), about2.length(), inpacket.getAddress(),
				inpacket.getPort());
		socket.send(outpacket);//发送
		System.out.println("数据发送成功");
		socket.close();
	}
}
